分类
联系方式
  1. 新浪微博
  2. E-mail

Dart factory 关键词

介绍

在 Dart 中,你可以使用 factory 关键字来定义一个工厂构造函数。这个函数可以返回一个类型的实例。

工厂构造函数的一个常见用途是创建复杂的对象,例如从数据库中查询数据并将其转换成对象。它们还可以用于创建可以被缓存或共享的单例对象。

示例

class Shape {
  // ...
}

class Circle extends Shape {
  // ...
}

class CircleFactory {
  static Circle createCircle(double radius) {
    return Circle(radius);
  }

  factory Circle.fromJson(Map<String, dynamic> json) {
    return Circle(json['radius']);
  }
}

void main() {
  final circle1 = CircleFactory.createCircle(10);
  final circle2 = Circle.fromJson({ 'radius': 20 });
}

在上面的代码中,CircleFactory.createCircle 是一个静态工厂构造函数,它直接返回一个圆形。Circle.fromJson 是一个工厂构造函数,它从 JSON 数据中创建一个圆形。